// pages/user/order/order.js
const util = require("../../../utils/util.js")

Page({

  data: {
    orderTypes: ["全部", "预约中", "预约成功", "已完成"], // 订单分类
    // 分页参数
    pageNumber: 1,
    pageSize: 10,
    status: -1, // 订单状态（0预约中，1已完成）
    hasNextPage: false, // 是否还有下一页
    orders: [], // 存储分页查询数据
    // scrill-view竖向滚动条位置
    scrollTop: 0,
    // 默认非刷新状态
    reFreshing: false
  },

  /**
   * 查询预约订单信息，包含商品信息
   */
  selectWxOrderByPage: function(this_) {
    return util.requestByPost("/gdd/xcx/selectWxOrderByPage/" + this_.data.pageNumber + "/" + this_.data.pageSize, {
      status: this_.data.status > -1 ? this_.data.status : null
    }, {
      isLogin: true,
      isPrePage: false
    }).then(res => {
      this_.data.orders = this_.data.orders.concat(res.list)
      this_.setData({
        reFreshing: false,
        orders: this_.data.orders,
        hasNextPage: res.hasNextPage
      })
    })
  },

  /**
   * 点击订单分类列表触发分页查询
   */
  onClickOrderType: function(event) {
    if (this.data.status === event.currentTarget.dataset.index) {
      return
    }
    this.setData({
      orders: [],
      pageNumber: 1,
      status: event.currentTarget.dataset.index
    })
    this.selectWxOrderByPage(this)
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    // 隐藏转发按钮
    wx.hideShareMenu()
    // 分页查询
    this.selectWxOrderByPage(this)
  },

  /**
   * 页面显示/切入前台时触发
   */
  onShow: function() {
    this.setData({
      scrollTop: 0
    })
  },

  /**
   * 页面隐藏到后台
   */
  onHide: function() {
    this.setData({
      orders: []
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {
    this.setData({
      reFreshing: true,
      scrollTop: 0,
      orders: [],
      pageNumber: 1
    })
    this.selectWxOrderByPage(this)
  },

  /**
   * scroll-view【下拉】滚动到距离顶部50px时触发
   */
  onScrollToUpper: function() {
    if (this.data.reFreshing) {
      return
    }
    wx.startPullDownRefresh()
  },

  /**
   * 
   * scroll-view【上拉】滚动到距离底部50px时触发
   */
  onScrollToLower: function() {
    if (this.data.hasNextPage) {
      this.data.pageNumber += 1
      setTimeout(() => {
        this.selectWxOrderByPage(this)
      }, 300)
    } else {
      wx.showToast({
        title: '我是有底线的',
        icon: "none",
        mask: true
      })
    }
  },

  /**
   * 订单操作
   */
  onOperation: function(event) {
    const this_ = this
    return util.requestByPost("/gdd/xcx/deleteWxOrder", {
      id: event.currentTarget.dataset.id
    }, {
      isLogin: true,
      isPrePage: false
    }).then(res => {
      /**
       * 级联删除本地数据
       */
      this_.data.orders.splice(event.currentTarget.dataset.index, 1) // 删除数组中指定下表的元素
      this_.setData({
        orders: this_.data.orders,
      })
    })
  }

})